home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 011 / cshell32.arc / SHELL.DOC < prev    next >
Encoding:
Text File  |  1986-08-22  |  50.6 KB  |  1,254 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  69.  
  70.  
  71.  
  72.           NAME    
  73.           NAME  
  74.  
  75.  
  76.                pc-shell - pc command processor 
  77.  
  78.  
  79.           SYNOPSIS    
  80.           SYNOPSIS  
  81.  
  82.  
  83.                pc shell                                   
  84.                pc-shell  [-s] [-v] [-b] [arg1 ... argn] 
  85.  
  86.  
  87.           DESCRIPTION    
  88.           DESCRIPTION  
  89.  
  90.  
  91.                pc-shell is a command processor for IBM-PC's and compatibles that 
  92.                emulates  some  of  the  more desirable functions of the Berkeley
  93.                UNIX* C-shell. In addition, it implements PC-DOS versions of some 
  94.                of the common UNIX* commands  -ls, mv, cp, etc.  
  95.  
  96.  
  97.                     v                                                             
  98.                The -v option (verbose) causes the program to echo  all  commands
  99.                to the standard error stream before executing them.  
  100.  
  101.  
  102.                      b                                                            
  103.                The  -b  option  suppresses mapping of the backslash character to
  104.                the forward slash character in all  operations  that  communicate
  105.                with [PC|MS]DOS.    This is here primarily for compatibility with
  106.                PC-NET,  which  seems  to  choke  on  paths  containing   forward
  107.                slashes.  
  108.  
  109.  
  110.                arg1       argn                                                    
  111.                arg1  ...  argn  (the  command  line  arguments) are put into the
  112.                shell's environment as the variables $1 through $n.  
  113.  
  114.  
  115.  
  116.           Wild Card Substitution    
  117.           Wild Card Substitution  
  118.  
  119.  
  120.                Ambiguous file names are expanded to  a  list  of  matching  file
  121.                names on  the command line.  This can be defeated by quoting, and
  122.                by setting the NOGLOB environment variable to '1'.  
  123.  
  124.  
  125.                Command lines passed to external programs are  truncated  to  128
  126.                characters.  
  127.  
  128.  
  129.  
  130.           History Substitution    
  131.           History Substitution  
  132.  
  133.  
  134.  
  135.                History substitution is a powerful means to save retyping of long 
  136.                command lines.It allows you to do things like re-execute the last 
  137.                command,    re-execute  the last command but redirect output to a
  138.                file, or execute a  new  command  with  arguments  from  previous
  139.                command  lines.    The  last  20  commands  are saved, and can be
  140.                reviewed by typing the 'history' command.  
  141.  
  142.  
  143.                Previous commands can be referred to by their number, or relative 
  144.                to the  current  command's  number.    Parameters  from  previous
  145.                commands can be seperated out and used individually.  
  146.  
  147.  
  148.                History  substitutions  specifications  come  in  two parts - the
  149.                command number  specifier and the argument  specifier,  seperated
  150.                by a  colon.    The  argument    specifier  is optional; if it is
  151.                omitted, the entire command line is specified.  
  152.  
  153.  
  154.                <command specifier> ::= !! | !n | !-n | <shortcut> 
  155.  
  156.  
  157.  
  158.                                               -1-
  159.  
  160.  
  161.  
  162.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  163.  
  164.  
  165.  
  166.                !!  = last command
  167.                !n  = nth command
  168.                !-n = command n commands before current command number
  169.                !#  = the current command line
  170.  
  171.  
  172.                <arg specifier> ::= :[^$*] | [^$*] | :n | :n* | <searchstr> | <empty>
  173.                n   = number of argument (0 being the command name)
  174.                ^   = first argument (i.e. argv[1])
  175.                $   = last argument
  176.                *   = ^-$, or nothing if only one word on command line
  177.                n*  = arguments n through $
  178.  
  179.  
  180.                <searchstr> ::= (initial characters of a previous command)
  181.  
  182.  
  183.                <history subst specification> ::= <command specifier><arg specifier>
  184.  
  185.  
  186.                This is not as complicatated as  it  may  appear.    Here  is  an
  187.                example session.  
  188.  
  189.  
  190.                EXAMPLE 
  191.  
  192.  
  193.                0% ls *.c
  194.                *.c
  195.                foo.c bar.c
  196.                1% more foo.c
  197.                /* edit the last argument of the last command */
  198.                2% edit !!:$            
  199.                /* go off and edit */
  200.                /* reference last argument of last command */
  201.                3% fgrep foo !!:$ bar.c 
  202.                FOO.C : foo
  203.                BAR.C : foo
  204.                /* edit the second thru the last args of command 3 */
  205.                4% edit !3:2*            
  206.                (go off and edit)
  207.                /* repeat last command */
  208.                %5 !!
  209.                (go off and edit)
  210.                /* remove the 1st argument of the command 2 before the current one */
  211.                %6 rm !-6:^
  212.  
  213.  
  214.  
  215.                Several  shortcut  expressions  (that  don't  fit into the formal
  216.                description above) are also allowed.  !$, !^,  !*  are  allowable
  217.                synonyms for !!:$, !!:^, and !!:*.  It is also possible to select 
  218.                a previous command with one or more characters from the beginning 
  219.                of that command line.  
  220.  
  221.  
  222.                     %1 edit foo.c    # edit a source file
  223.                     %2 cc foo.c        # try and compile it
  224.                     %3 !e            # repeat command #1
  225.  
  226.  
  227.                History substitution here is a compatible subset of the [U|XE]NIX 
  228.                C shell    history  substitution  facility.    Cshell allows even
  229.                weirder combinations.  
  230.  
  231.  
  232.  
  233.           Variable Substitution    
  234.           Variable Substitution  
  235.  
  236.  
  237.  
  238.                                               -2-
  239.  
  240.  
  241.  
  242.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  243.  
  244.  
  245.  
  246.                Shell variables are synonymous for our purposes with  environment
  247.                strings, i.e.  they are defined with the 'set' command.  
  248.  
  249.  
  250.                Variables  are  referenced  on  the  command  line by prefacing a
  251.                variable name by a dollar sign.    Two  dollar  signs  in  a  row
  252.                signify a dollar sign character.  
  253.  
  254.  
  255.                As  mentioned  above, command line arguments are contained in the
  256.                                                      n                             
  257.                shell variables, $1 through $n, where n is the number of the last 
  258.                argument.  
  259.  
  260.  
  261.                EXAMPLE
  262.  
  263.  
  264.                %0 set home = c:/
  265.                %1 echo $home
  266.                C:/
  267.                %2 ls $home
  268.                C:/*.*
  269.                command.com
  270.                %3 echo $path
  271.                C:/bin
  272.  
  273.  
  274.                And so on.  
  275.  
  276.  
  277.  
  278.           Special variables    
  279.           Special variables  
  280.  
  281.  
  282.                There are a some shell variables that have special  meanings  for
  283.                                                               set                 
  284.                the shell.   They can be given values with the set command.  They
  285.                are 
  286.  
  287.  
  288.               NOCLOBBER    
  289.               NOCLOBBER  
  290.  
  291.  
  292.                       NOCLOBBER                                                   
  293.                    If NOCLOBBER is equal to '1', then existing files may not  be
  294.                    destroyed  by  output  redirection,  and  output  files to be
  295.                    appended to by >> must exist.  
  296.  
  297.  
  298.  
  299.               PROMPT    
  300.               PROMPT  
  301.  
  302.  
  303.                        PROMPT                                                     
  304.                    The PROMPT environment string is handled the same way  as  it
  305.                           COMMAND COM                                             
  306.                    is by  COMMAND.COM.    There  is one pc-shell-specific prompt
  307.                    string character  !    that  specifies  the  current  command
  308.                    index.   If no PROMPT environment string is defined, then the
  309.                    default is '$!% '.  
  310.  
  311.  
  312.           NOGLOB    
  313.           NOGLOB  
  314.  
  315.  
  316.                    NOGLOB                                                         
  317.                The NOGLOB environment string, if set to '1', will suppress  file
  318.                name expansion.  
  319.  
  320.  
  321.  
  322.           NODOS    
  323.           NODOS  
  324.  
  325.  
  326.                     NODOS environment string  if set to  1   will keep the shell  
  327.                The  NODOS environment string, if set to '1', will keep the shell
  328.                from                                                               
  329.                from  invoking  command.com  to  handle   commands   it   doesn't
  330.                understand.  
  331.  
  332.  
  333.  
  334.  
  335.                                               -3-
  336.  
  337.  
  338.  
  339.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  340.  
  341.  
  342.  
  343.           Multiple commands on one command line    
  344.           Multiple commands on one command line  
  345.  
  346.  
  347.                Command lines  are  split at semicolons.  This can be defeated by
  348.                quoting or escaping.  
  349.  
  350.  
  351.                EXAMPLE 
  352.  
  353.  
  354.                %0 ls -l *.c ; make shell.exe ; exit
  355.  
  356.  
  357.           Conditional command execution    
  358.           Conditional command execution  
  359.  
  360.  
  361.                If two commands are seperated by '&&', then the  second  will  be
  362.                executed only  if  the  first  returns 0 as an exit code.  If two
  363.                commands are seperated by '||', then the second will be  executed
  364.                only the first command returns non-zero as an exit code.  
  365.  
  366.  
  367.                Example 
  368.  
  369.  
  370.                    make shell.exe && chmod +w /bin/shell.exe && mv shell.exe /bin 
  371.  
  372.  
  373.                    If  the  make operation fails, then the chmod and the mv will
  374.                    not be executed.  
  375.  
  376.  
  377.                    make shell.exe || echo You blew it bub!
  378.  
  379.  
  380.                    If the make operation fails, then the echo operation will  be
  381.                    executed.  
  382.  
  383.  
  384.  
  385.           Character Escapes  Shell Comments  and Argument Quoting    
  386.           Character Escapes, Shell Comments, and Argument Quoting  
  387.  
  388.  
  389.                Any  character  preceded by a  \ (backslash) is copied unmodified
  390.                to the command buffer.  This allows you to suppress  the  special
  391.                meanings  of  shell  command characters, such as '|', ';', and '*
  392.                '.  
  393.  
  394.  
  395.                # is the shell comment character.  Anything on a line after  a  #
  396.                character is ignored.  
  397.  
  398.  
  399.                Command line arguments contained in quotes (single or double) may 
  400.                contain blank space (i.e. blanks or tabs).  Variable substitution 
  401.                will take  place  within strings surrounded by double quotes.  No
  402.                interpretation takes place within single quotes.   
  403.  
  404.  
  405.                Within  double  quotes,  the  'C'   language   escape   sequences
  406.                \r,\n,\b,\f, and  \a are honored - i.e.  they are mapped to their
  407.                corresponding control characters.  
  408.  
  409.  
  410.  
  411.           Startup and Script Files    
  412.           Startup and Script Files  
  413.  
  414.  
  415.  
  416.                If '-s' is specified on the command line the  program  will  look
  417.                for  a file called SHELL.RC in the current directory, and execute
  418.                it before passing  control to the console.  This  allows  you  to
  419.                set up  all  your alias commands.  It isn't a good idea to put an
  420.                'exit'  command  in  your  SHELL.RC  file,  as  the  shell   will
  421.                terminate.  
  422.  
  423.  
  424.  
  425.                                               -4-
  426.  
  427.  
  428.  
  429.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  430.  
  431.  
  432.  
  433.                                                sh                                 
  434.                Any file  whose  extension  is .sh is run as a command file.  The
  435.                environment string PATH is used to locate the script file  if  it
  436.                isn't in  the  current  directory.  .sp 1 There is also a command
  437.                sh                                                                 
  438.                sh, into which shell scripts whose extension is not  .sh  can  be
  439.                redirected as standard input.  
  440.  
  441.  
  442.                EXAMPLE
  443.  
  444.  
  445.                %0 sh <batch.fil        # use the sh command
  446.                %1 shell <batch.fil     # run the external program
  447.  
  448.  
  449.                                    bat                                            
  450.                Files  ending  in  .bat  files  are  passed  to  COMMAND.COM  for
  451.                execution.  
  452.  
  453.  
  454.  
  455.           INPUT OUTPUT    
  456.           INPUT/OUTPUT  
  457.  
  458.  
  459.                                                          COMMAND COM              
  460.                I/O redirection operates as it does under COMMAND.COM  with  some
  461.                additional options: 
  462.  
  463.  
  464.             name   
  465.            <name 
  466.  
  467.  
  468.                               name                           
  469.                Opens the file name as the standard input.  
  470.  
  471.  
  472.              word   
  473.            <<word 
  474.  
  475.  
  476.                                                                            word   
  477.                reads  the  shell  input up to a line which is identical to word.
  478.                The resulting text is put into an anonymous temporary file, which 
  479.                is given to the command as standard input.  
  480.  
  481.  
  482.                 name  
  483.                >name
  484.                  name  
  485.                >!name
  486.                  name  
  487.                >&name
  488.                   name  
  489.                >&!name
  490.  
  491.  
  492.                             name                                                  
  493.                    The file name  is used as standard output.    If  it  doesn't
  494.                    exist,  it's  created; if it exists, it is truncated, and its
  495.                    previous contents are lost.  
  496.  
  497.  
  498.                                    NOCLOBBER                                      
  499.                    If the variable NOCLOBBER is set, the file must  not  already
  500.                    exist, or  an  error results.  The forms using an exclamation
  501.                    point override the NOCLOBBER variable's action.  
  502.  
  503.  
  504.                               name                                                
  505.                    The form >&name routes standard  error  along  with  standard
  506.                              name     
  507.                    output to name.  
  508.  
  509.  
  510.                  name  
  511.                >>name
  512.                   name  
  513.                >>!name
  514.                   name  
  515.                >>&name
  516.                    name  
  517.                >>&!name
  518.  
  519.  
  520.                                     name                                          
  521.                    Uses  the  file  name  as standard output, like >, but places
  522.                                                                NOCLOBBER           
  523.                    output at the end of file.  If the variable NOCLOBBER is set, 
  524.                    it is an error if the file doesn't already exist.  The  forms
  525.                    using  an exclamation point override the NOCLOBBER variable's
  526.                    action.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.                                               -5-
  533.  
  534.  
  535.  
  536.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  537.  
  538.  
  539.  
  540.               BUILT IN COMMANDS    
  541.               BUILT-IN COMMANDS  
  542.  
  543.  
  544.  
  545.                    Some of the internal commands are  UNIX*  style  replacements
  546.                    for  COMMAND.COM internal commands, and some are included for
  547.                    convenience.  
  548.  
  549.  
  550.                        Output of the 'commands' command
  551.  
  552.  
  553.                        a:              alias           b:              c:
  554.                        cat             cd              chdir           chmod
  555.                        cls             commands        copy            cp
  556.                        d:              del             dir             dump
  557.                        e:              echo            era             erase
  558.                        error           exit            f:              fgrep
  559.                        g:              h:              hd              history
  560.                        i:              j:              ls              md
  561.                        mkdir           mon             more            mv
  562.                        popd            pushd           pwd             rd
  563.                        read            rm              rmdir           set
  564.                        sh              switchar        tee             touch
  565.                        unalias         version         y
  566.  
  567.  
  568.                    There are many that are simply aliases, e.g.  'copy' and 'cp' 
  569.                    invoke the same program.  
  570.  
  571.  
  572.  
  573.               COMMAND DESCRIPTION SYNTAX    
  574.               COMMAND DESCRIPTION SYNTAX  
  575.  
  576.  
  577.                    terms used in syntax explanations :
  578.                    
  579.                    fname ::= PC-DOS ambiguous or unambiguous file or directory name.
  580.                    
  581.                    uname ::= unambiguous PC-DOS file or directory name
  582.                    
  583.                    string ::= any string of printable characters of arbitrary(<512) length.
  584.                    
  585.                    filelist ::= filename [filename .. filename]
  586.                    
  587.                    noargs ::= no arguments at all
  588.                    
  589.                    space ::= any white space characters
  590.                    
  591.                    [arg] ::= term is optional
  592.                    
  593.                    envstring ::=    <string>=<string> | <string><space>=<space><string> |
  594.                 <string><space><string>
  595.  
  596.  
  597.  
  598.               COMMANDS    
  599.               COMMANDS  
  600.  
  601.  
  602.  
  603.                    drive  
  604.                    drive
  605.  
  606.  
  607.                        a: | b: | c: | d: | e: | f: | g: | h: | i: | j: <noargs> 
  608.  
  609.  
  610.                        changes default drive.  If you don't have such  a  drive,
  611.                        nothing happens.  
  612.  
  613.  
  614.  
  615.                                               -6-
  616.  
  617.  
  618.  
  619.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  620.  
  621.  
  622.  
  623.                    alias  
  624.                    alias
  625.  
  626.  
  627.                        alias <envstring> 
  628.  
  629.  
  630.                        assigns cmdstring  to name.  name can now be used just as
  631.                        if it were a built-in or external command.  cmdstring may 
  632.                        contain history expressions or variable substitutions.  
  633.  
  634.  
  635.                        The syntax of this command is flexible - you can  specify
  636.                        alii  (?)  in  the form 'name=subst','name subst','name =
  637.                        subst', or  'name  =subst.'  However  you  need  a  space
  638.                                   before                                          
  639.                        character  before  a  single quote in order to specify an
  640.                        alias that contains blanks.  
  641.  
  642.  
  643.                            alias     set                                          
  644.                        The alias and set commands  are  case  sensitive,  unlike
  645.                                         COMMAND COM     
  646.                        their analogs in COMMAND.COM.  
  647.  
  648.  
  649.                    cat  
  650.                    cat
  651.  
  652.  
  653.                        cat [<filelist>] 
  654.  
  655.  
  656.                        copies specified  files  to standard output.  If none are
  657.                        given, copies standard input to standard output 
  658.  
  659.  
  660.                    cp  
  661.                    cp
  662.  
  663.  
  664.                        cp | copy <filelist> <uname> 
  665.  
  666.  
  667.                        copies specified files to destination file or device.  If 
  668.                        more than one file is in the file list, <uname> must be a 
  669.                        directory.  
  670.  
  671.  
  672.                    cd  
  673.                    cd
  674.  
  675.  
  676.                        cd | chdir <dirname> 
  677.  
  678.  
  679.                        makes <dirname> the current default directory.  
  680.  
  681.  
  682.                    chmod  
  683.                    chmod
  684.  
  685.  
  686.                        chmod [-|+[arwhs]*] <filelist> 
  687.  
  688.  
  689.                        change file permissions for specified files 
  690.  
  691.  
  692.                        +r, -r turn on or off read permission - i.e. hide the file.
  693.                        +w, -w turn on or off write permission.
  694.                        +h, -h turn on or off hidden attribute - converse of r
  695.                        +a, -a turn on or off archive attribute
  696.                        +s, -s turns on or off the system attribute
  697.  
  698.  
  699.                        Note that '-r'  or  '+rwh'  are  both  valid  syntax  for
  700.                        switches.   Also  new permission switches are permissable
  701.                        between file names with the following  warning:  I  don't
  702.                        reset the masks between file names - if you have a second 
  703.                        batch  of  attribute  changes  on  the  command line, the
  704.                        effect is additive.  If you're  not  careful,  you  could
  705.                        make a mess of a files attributes.  
  706.  
  707.  
  708.  
  709.  
  710.                                               -7-
  711.  
  712.  
  713.  
  714.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  715.  
  716.  
  717.  
  718.                        If   you  don't  specify  any  attribute  switches,  file
  719.                        attributes will be set to 0, which  means  read,write,not
  720.                        hidden,not system, not  modified since last backup.  
  721.  
  722.  
  723.                    cls  
  724.                    cls
  725.  
  726.  
  727.                        cls <noargs> 
  728.  
  729.  
  730.                        clears the screen and homes the cursor.  
  731.  
  732.  
  733.                    commands  
  734.                    commands
  735.  
  736.  
  737.                        commands <noargs> 
  738.  
  739.  
  740.                        prints a  table  of  available  built-in  commands.  (see
  741.                        above) 
  742.  
  743.  
  744.                    del  
  745.                    del
  746.  
  747.  
  748.                        del 
  749.  
  750.  
  751.                        synonym for rm.  
  752.  
  753.  
  754.                    dir  
  755.                    dir
  756.  
  757.  
  758.                        dir 
  759.  
  760.  
  761.                        synonym for ls.  
  762.  
  763.  
  764.                    dirs  
  765.                    dirs
  766.  
  767.  
  768.                        dirs <noargs> 
  769.  
  770.  
  771.                        lists the directories on the directory stack.  (see pushd 
  772.                        and popd) 
  773.  
  774.  
  775.                    du  
  776.                    du
  777.  
  778.  
  779.                        du [drivename] 
  780.  
  781.  
  782.                                                             drivename             
  783.                        prints out remaining space on drive  drivename.   If  you
  784.                        leave  off  the  drivename,  it  defaults  to the current
  785.                        drive.  
  786.  
  787.  
  788.                    dump  
  789.                    dump
  790.  
  791.  
  792.  
  793.                        dump filespec [block [page]] | [segment:[offset]] [count] 
  794.  
  795.  
  796.                        Where a block is 64K bytes and a page is 256 bytes
  797.                        Segment:offset are standard 8086 notation in hexadecimal
  798.                        Count is the number of bytes to dump in decimal
  799.  
  800.  
  801.                        This came from some anonymous public domain source, ported by me
  802.  
  803.  
  804.                    echo  
  805.                    echo
  806.  
  807.  
  808.                        echo <anything> 
  809.  
  810.  
  811.  
  812.                                               -8-
  813.  
  814.  
  815.  
  816.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  817.  
  818.  
  819.  
  820.                                                            echo  on               
  821.                        echos argument list  to  screen.    echo  on  causes  all
  822.                        commands  to  be  echoed  before execution (i.e. sets the
  823.                                         echo off                                
  824.                        verbose  flag).  echo off turns off the verbose flag.  
  825.  
  826.  
  827.                    era  
  828.                    era
  829.  
  830.  
  831.                        era 
  832.  
  833.  
  834.                        synonym for rm.  
  835.  
  836.  
  837.                    error  
  838.                    error
  839.  
  840.  
  841.                        error <noargs> 
  842.  
  843.  
  844.                        prints returned value of last command to the screen.  
  845.  
  846.  
  847.                    exit  
  848.                    exit
  849.  
  850.  
  851.                        exit <noargs> 
  852.  
  853.  
  854.                        terminates execution of the currently running  sub-shell.
  855.                        If  you are at top level of execution, you will return to
  856.                        dos.  
  857.  
  858.  
  859.                    fgrep  
  860.                    fgrep
  861.  
  862.  
  863.                        fgrep <pattern> <filelist> 
  864.  
  865.  
  866.                        looks for unambiguous pattern  <pattern>  in  <filelist>.
  867.                        echos lines matching to the screen.  
  868.  
  869.  
  870.                    history  
  871.                    history
  872.  
  873.  
  874.                        history [size] 
  875.  
  876.  
  877.                                                                          size     
  878.                        prints history  list  to  standard  output.    If size is
  879.                        given, the number of commands history remembers is set to 
  880.                        size                                                       
  881.                        size.  If you change  the  size,  history  'forgets'  all
  882.                        previous commands and resets its counters to 0.  
  883.  
  884.  
  885.                    ls  
  886.                    ls
  887.  
  888.  
  889.                        ls | dir [-[alqctrR]] <filelist> 
  890.  
  891.  
  892.                        Lists files that match <filelist> 
  893.  
  894.  
  895.                        -a all files, including system files are listed.  '.' and 
  896.                        '..'  are  suppressed,  but you know they're there if you
  897.                        need them, don't you?  
  898.                        -l prints out file times, permissions, etc 
  899.                        -q suppresses header line from display - useful when  you
  900.                        want to pipe stuff into another program.  
  901.                        -c print as one column.  
  902.                        -t sort by time, most recent last 
  903.                        -R recurse through all encountered subdirectories.  
  904.                        -r reverses sort order.  
  905.  
  906.  
  907.                    md  
  908.                    md
  909.  
  910.  
  911.  
  912.                                               -9-
  913.  
  914.  
  915.  
  916.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  917.  
  918.  
  919.  
  920.                        md | mkdir <uname> 
  921.  
  922.  
  923.                        make a directory.  Prints an error if it can't be done 
  924.  
  925.  
  926.                    mon  
  927.                    mon
  928.  
  929.  
  930.                        mon <noargs> 
  931.  
  932.  
  933.                        mon                                                         
  934.                        mon prints to standard error a lot of cryptic information 
  935.                        on system variables thusly: 
  936.  
  937.  
  938.                            Corg : 0000 Cend : 715a Dorg : 0002 Dend 167a
  939.                            Uorg : 167a Uend : 327a mbot : 427c mtop 4800
  940.                            sbot : 0000 PSP  : 490d STKSIZ : 00256 HEAPSIZ : 00064
  941.                            dsval : 5033 csval : 491d
  942.                            STKLOW : 0001 MEMRY : 4680
  943.                            CS : 491d DS : 5033 SP : 4186
  944.  
  945.  
  946.                        You  can  probably  figure out what most of the variables
  947.                        mean.  If you have source and have broken the shell, this 
  948.                        command may help.  
  949.  
  950.  
  951.                    more  
  952.                    more
  953.  
  954.  
  955.                        more [-[0-9]*] [<filelist>] 
  956.  
  957.  
  958.                        List file to screen with pauses 
  959.  
  960.  
  961.                        -n specify tab width when expanding tabs, where n  is  an
  962.                        integer.   more acts like 'cat' when redirected - you can
  963.                        concatenate files in  this  manner.    If  no  files  are
  964.                        specifed, standard input is 'mored.' 
  965.  
  966.  
  967.                    mv  
  968.                    mv
  969.  
  970.  
  971.                        mv [-v] <filelist> <uname> 
  972.  
  973.  
  974.                        moves  specified  file  or  files  to  target specifed by
  975.                        <uname>.  If there is more than one file in list, <uname> 
  976.                        must be a directory 
  977.  
  978.  
  979.                         v                                                         
  980.                        -v  will  print  out  a  message   saying   how   it   is
  981.                        accomplishing   the   move,   which   is   probably  more
  982.                        interesting to me than you.  
  983.  
  984.  
  985.                    popd  
  986.                    popd
  987.  
  988.  
  989.                        popd <noargs> 
  990.  
  991.  
  992.                        returns to directory at top of directory stack.  
  993.  
  994.  
  995.                    pushd  
  996.                    pushd
  997.  
  998.  
  999.                        pushd <uname> 
  1000.  
  1001.  
  1002.                        save current working directory on  directory  stack,  and
  1003.                        changes current working directory to <uname>.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.                                              -10-
  1009.  
  1010.  
  1011.  
  1012.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  1013.  
  1014.  
  1015.  
  1016.                    pwd  
  1017.                    pwd
  1018.  
  1019.  
  1020.                        pwd 
  1021.  
  1022.  
  1023.                        prints current working directory to standard output.  
  1024.  
  1025.  
  1026.                    read  
  1027.                    read
  1028.  
  1029.  
  1030.                        read vname0 [vname1 .. vnamen] 
  1031.  
  1032.  
  1033.                        read                                                       
  1034.                        read  reads  a line from standard input, and assigns each
  1035.                        word from  the  line  to  the  corresponding  environment
  1036.                                               vname0          vnamen     
  1037.                        variable specified by  vname0  through vnamen.  
  1038.  
  1039.  
  1040.                        EXAMPLE 
  1041.  
  1042.  
  1043.                            read a b    # read into environment variables a and b
  1044.                        you type
  1045.                            hello there
  1046.                            echo $a
  1047.                        the shell echos
  1048.                            hello
  1049.                            echo $b
  1050.                        there
  1051.  
  1052.  
  1053.                        If there are fewer environment variables specified on the 
  1054.                        command  line  than  there are words in the command line,
  1055.                        the last environment variable will contain  the  rest  of
  1056.                        the words on the line.  
  1057.  
  1058.  
  1059.                        EXAMPLE 
  1060.  
  1061.  
  1062.                            read a b    # read into environment variables a and b
  1063.                        you type
  1064.                            hello there Mister Jones
  1065.                            echo $a
  1066.                        the shell echos
  1067.                            hello
  1068.                            echo $b
  1069.                        there Mister Jones
  1070.  
  1071.  
  1072.                        If  there  are  more environment variables on the command
  1073.                        line than words on the line read from standard input, the 
  1074.                        left-over environment variables' state will not change  -
  1075.                        if  they  were  defined in the environment already, their
  1076.                        status won't change, and if they  weren't  defined,  they
  1077.                        stay undefined.  
  1078.  
  1079.  
  1080.                    rd  
  1081.                    rd
  1082.  
  1083.  
  1084.                        rd | rmdir <uname> 
  1085.  
  1086.  
  1087.                        remove specified directory if possible.  
  1088.  
  1089.  
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.                                              -11-
  1097.  
  1098.  
  1099.  
  1100.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  1101.  
  1102.  
  1103.  
  1104.                    rm  
  1105.                    rm
  1106.  
  1107.  
  1108.                        rm [-q] <filelist> 
  1109.  
  1110.  
  1111.                        blows  away  all files in <filelist>. If -q is specified,
  1112.                        will ask if they should be removed.  
  1113.  
  1114.  
  1115.                    set  
  1116.                    set
  1117.  
  1118.  
  1119.                        set [<envstring>] 
  1120.  
  1121.  
  1122.                        sets a string in the environment.  If you specify 'name=' 
  1123.                        with  no  string  after,  it  will  remove  it  from  the
  1124.                        environment.   If  you don't specify a string, set prints
  1125.                        out current environment.  
  1126.  
  1127.  
  1128.                        The syntax of this command is flexible - you can  specify
  1129.                        set  in  the  form 'set name=subst','set name subst','set
  1130.                        name = subst', or 'set name =subst.' However you  need  a
  1131.                                        before                                      
  1132.                        space character before a single quote in order to specify 
  1133.                        a substitution string that contains blanks.  
  1134.  
  1135.  
  1136.                    sh  
  1137.                    sh
  1138.  
  1139.  
  1140.                        sh [ <arg1> .. <argn>] <scriptfile 
  1141.  
  1142.  
  1143.                        forks a  'local'  shell  -  i.e.    saves  all  pertinent
  1144.                        information about  the  shell  you're  currently  in  and
  1145.                        invokes  the command processor function recursively, with
  1146.                        scriptfile                                                 
  1147.                        scriptfile as input.  The  arguments  are  copied  to  $1
  1148.                        through  $N  environment strings, overwriting the startup
  1149.                        arguments.  
  1150.  
  1151.  
  1152.                        sh                                                         
  1153.                        sh gives you a way to run  scripts,  without  loading  an
  1154.                        extra copy of shell.com or small.com.  
  1155.  
  1156.  
  1157.                    switchar  
  1158.                    switchar
  1159.  
  1160.  
  1161.                        switchar [schar] 
  1162.  
  1163.  
  1164.                                                          schar      schar         
  1165.                        sets the  DOS switch character to schar.  If schar is not
  1166.                        given, the current switch character is echoed.  
  1167.  
  1168.  
  1169.                    tee  
  1170.                    tee
  1171.  
  1172.  
  1173.                        tee <uname> 
  1174.  
  1175.  
  1176.                        Copies standard input to standard  output,  depositing  a
  1177.                        copy in <uname> 
  1178.  
  1179.  
  1180.                    touch  
  1181.                    touch
  1182.  
  1183.  
  1184.                        touch <filelist> 
  1185.  
  1186.  
  1187.                        Makes  the  modification  time  of  specified  files  the
  1188.                        current date and time.  
  1189.  
  1190.  
  1191.                    unalias  
  1192.                    unalias
  1193.  
  1194.  
  1195.  
  1196.                                              -12-
  1197.  
  1198.  
  1199.  
  1200.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  1201.  
  1202.  
  1203.  
  1204.                        unalias aliasname 
  1205.  
  1206.  
  1207.                        remove alias name from the alias list.  
  1208.  
  1209.  
  1210.                    y  
  1211.                    y
  1212.  
  1213.  
  1214.                        y <filelist> 
  1215.  
  1216.  
  1217.                        copies standard input to standard output, and then copies 
  1218.                        the specified files to standard  output.    Sort  of  the
  1219.                        opposite of tee, in other words.  
  1220.  
  1221.  
  1222.  
  1223.               The Small Shell    
  1224.               The Small Shell  
  1225.  
  1226.  
  1227.  
  1228.                    Included  in release 2.0 or later is a 'small' version of the
  1229.                    shell.   This version will take up less than 30K of memory at 
  1230.                     runtime (as verified by chkdsk).  What's the catch?    Well,
  1231.                    ls,  cp,  mv, more, fgrep, and dump become external commands.
  1232.                    I am not going to distribute these commands; you  can  either
  1233.                    make  them    yourself,  or  you can use whatever you have on
  1234.                    hand.  If you need to use the COMMAND.COM copy facility,  try
  1235.                    putting these commands in your SHELL.RC file 
  1236.  
  1237.  
  1238.                    alias cp 'command -c copy'
  1239.                    alias ls 'command -c dir -w | sort'
  1240.  
  1241.  
  1242.                    The   removed   commands   accounted  for  over  10K  of  the
  1243.                    shell.com.  
  1244.  
  1245.  
  1246.               Helpful hints    
  1247.               Helpful hints  
  1248.  
  1249.  
  1250.  
  1251.                    Use forward slashes in all path names.  (See  note  below  on
  1252.                    switch  characters)    If  you  use  DOS  3.0 or higher, this
  1253.                    includes paths to transient programs.  
  1254.  
  1255.  
  1256.                    put single quotes around arguments with semicolons  in  them,
  1257.                    so they don't turn into command delimiters.  
  1258.  
  1259.  
  1260.                    The  set  command affects only the local shell's environment.
  1261.                    You can 'exit' to command.com and the original environment is 
  1262.                    intact.  The  local  environment  is  2K  large  -  which  is
  1263.                    useful.  
  1264.  
  1265.  
  1266.                    When  using  the  Microsoft  C  compiler  under pc-shell, the
  1267.                    compiler has a bad habit of  look  for  parameters  beginning
  1268.                    with forward  slashes  in  the environment.  If you get their
  1269.                    famous  'P0  :  bad  option'  message,   try   revising   the
  1270.                    environment.  
  1271.  
  1272.  
  1273.  
  1274.               Implementation notes    
  1275.               Implementation notes  
  1276.  
  1277.  
  1278.  
  1279.                    DOS  doesn't  acknowledge  a  'change  default drive' command
  1280.                    until you issue a 'get current directory' call.   Why?    The
  1281.  
  1282.  
  1283.  
  1284.                                              -13-
  1285.  
  1286.  
  1287.  
  1288.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  1289.  
  1290.  
  1291.  
  1292.                    only way I figured this out is by disassembling command.com.  
  1293.  
  1294.  
  1295.                    PC|MS-DOS has  a  limit  of  20  file  handles.  If you add a
  1296.                    command that opens files, make sure you catch the  ctrl-break
  1297.                    signal and close them.  Look at CAT.C or Y.C for examples.  
  1298.  
  1299.  
  1300.                    DON'T  REDIRECT  INPUT  INTO  PRINT. Print gets all hosed up.
  1301.                    Print has lots of trouble in general with the  pc-shell,  and
  1302.                    should be avoided.  
  1303.  
  1304.  
  1305.               BUGS    
  1306.               BUGS  
  1307.  
  1308.  
  1309.  
  1310.                    Due  to  the way that environment strings are expanded on the
  1311.                    command line, semicolons inside  shell  variables  look  like
  1312.                    command seperators.    If  you enclose them in double quotes,
  1313.                    the problem will go away.  
  1314.  
  1315.  
  1316.                    I have noticed intermittent problems running on an  AT,  with
  1317.                    DOS  3.0,  but  have been unable to reproduce them on a PC. I
  1318.                    suspect bugs in DOS 3.0 that are absent in 3.1. If you notice 
  1319.                    any consistent problems, send  me a bug report.  
  1320.  
  1321.  
  1322.               HISTORY    
  1323.               HISTORY  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.                   V 2 0    
  1329.                   V 2.0  
  1330.  
  1331.  
  1332.                        Minor bug fixes.  Started allocating command buffers  out
  1333.                        of heap rather than stack, reducing stack usage.  Stopped 
  1334.                        releasing source with executables.  
  1335.  
  1336.  
  1337.                   V 2 1    
  1338.                   V 2.1  
  1339.  
  1340.  
  1341.                        Fixed the bug that made "mv foo .." throw away the source 
  1342.                        file and  move  it to "..foo", (i.e. nowhere).  Added the
  1343.                        sh command,  that  allows  you  to  run  scripts  without
  1344.                        re-invoking the shell.  
  1345.  
  1346.  
  1347.                   V 2 2    
  1348.                   V 2.2  
  1349.  
  1350.  
  1351.                        Fixed  the bug that locked pc up when a command line with
  1352.                        a leading ; was entered.  Changed fork code so that files 
  1353.                        with the extension .sh are run as scripts.    The  equals
  1354.                        sign in alias and set is now optional.  
  1355.  
  1356.  
  1357.                   V 2 3    
  1358.                   V 2.3  
  1359.  
  1360.  
  1361.                        Removed  information  about versions 1.0 through 1.6 from
  1362.                        documentation, adding any relevant material to  the  tips
  1363.                        or implementation  notes sections.   Added redirection of
  1364.                        standard error, and checking for  NOCLOBBER.  Implemented
  1365.                        execution of the prompt string.  
  1366.  
  1367.  
  1368.  
  1369.                   V 2 4    
  1370.                   V 2.4  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.                                              -14-
  1376.  
  1377.  
  1378.  
  1379.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  1380.  
  1381.  
  1382.  
  1383.                        The  problem running external programs written by IBM and
  1384.                        Microsoft  has  finally  been  traced  to  Aztecs  fexecv
  1385.                        function.   When  is  an  ASCIIZ  string  not  an  ASCIIZ
  1386.                        string?  When you need to put a single carriage return on 
  1387.                        the end of it.  THANKS to Programmers Journal. NOTE  WELL
  1388.                        that  needing  a carriage return in your command tail for
  1389.                        EXEC calls is note documented in the IBM PC-DOS technical 
  1390.                        reference.  
  1391.  
  1392.  
  1393.                        All references to the  Aztec  screen  library  have  been
  1394.                        removed,  so  this  should  work  on Rainbows, Compupros,
  1395.                        AMPROs etc.  etc.  etc.  ls is slower, but  its  a  small
  1396.                        price to  pay.    If  you want a fast version, one can be
  1397.                        created for you if you mail a contribution (hint,hint).  
  1398.  
  1399.  
  1400.                        mv now will do the right thing when you try to move to  a
  1401.                        drive  that  has been joined to a directory (DOS 3.1). It
  1402.                        also now has a  verbose  switch,  which  tells  you  what
  1403.                        exactly its doing.  When I started writing a mv, I had no 
  1404.                        idea  how  many  special  cases I would have to take care
  1405.                        of.  
  1406.  
  1407.  
  1408.                   V 2 5    
  1409.                   V 2.5  
  1410.  
  1411.  
  1412.                        Problem with using the wrong path to search for  external
  1413.                        programs solved.    Main  command line parsing changed so
  1414.                        that  NOGLOB  could  be  used  to  suppress   file   name
  1415.                        expansion.  
  1416.  
  1417.  
  1418.                   V 2 6    
  1419.                   V 2.6  
  1420.  
  1421.  
  1422.                        Many stupid  bugs  in 2.5 are addressed (sorry folks).  I
  1423.                        now peek inside double quotes to do  variable  expansion.
  1424.                        Double quotes are now stripped.  
  1425.  
  1426.  
  1427.                   V 2 7    
  1428.                   V 2.7  
  1429.  
  1430.  
  1431.                        Added read.    Fixed  bug  in  ls that would occasionally
  1432.                        leave you in a different directory.    The  exit  command
  1433.                        will  now  just  pop  you out a level of shell execution,
  1434.                        rather than kicking you out to the DOS prompt.  
  1435.  
  1436.  
  1437.                   V 2 8    
  1438.                   V 2.8  
  1439.  
  1440.  
  1441.                        Fixed bug  in  more  that  made  it  puke  when  you  hit
  1442.                        <CTRL>-<BREAK> at the bottom of a screen-full.  Made move 
  1443.                        and  cp  preserve  file  times when they have to create a
  1444.                        target.  
  1445.  
  1446.  
  1447.                   V 2 9    
  1448.                   V 2.9  
  1449.  
  1450.  
  1451.                        Fixed bug in ls that caused it to get confused  when  you
  1452.                        did an  'ls  -R'  on  a  drive other than default.  Also,
  1453.                        stopped it from hanging on an empty pipe.  Added the 'du' 
  1454.                        command - which is simply the last line of ls  -l.  Shell
  1455.                        scripts will now be searched for on PATH.  
  1456.  
  1457.  
  1458.                   V 3 0    
  1459.                   V 3.0  
  1460.  
  1461.  
  1462.  
  1463.                                              -15-
  1464.  
  1465.  
  1466.  
  1467.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  1468.  
  1469.  
  1470.  
  1471.                        Bug  fixed  : when you switched to a disk for which there
  1472.                        was no /tmp directory, the shell couldn't open  its  pipe
  1473.                        files.    Now  pipe  files  are  opened  in  the  default
  1474.                        directory.  If you have a better idea, let me know.  
  1475.  
  1476.  
  1477.                        Added a critical error handler - if you  get  the  abort,
  1478.                        retry, ignore message and abort, you return to the shell, 
  1479.                        rather than  to  DOS.  It is possible that all the memory
  1480.                        allocated during the execution of the  offending  command
  1481.                        may  not  be freed, in which case the shell could run out
  1482.                        of memory.  Just give it the exit command  and  re-invoke
  1483.                        if that happens.  
  1484.  
  1485.  
  1486.                        If  you  type something that the shell can't interpret as
  1487.                        an internal command, run as  an  external  program  or  a
  1488.                        script, I  give  command.com  a  crack  at  it.   You can
  1489.                        therefore now run dos batch files  transparently.    This
  1490.                        slows  things  down  somewhat  if  you type totally bogus
  1491.                        commands, so this feature can be  turned  off  with  "set
  1492.                        NODOS=1".  
  1493.  
  1494.  
  1495.                   V 3 1    
  1496.                   V 3.1  
  1497.  
  1498.  
  1499.                        Some general  cleanup.    Added  a function that makes an
  1500.                        absolute path from any relative path,  which  cleaned  up
  1501.                        mv, ls, and cp quite a bit.  
  1502.  
  1503.  
  1504.                        Went back  to  .com  format for pc-shell and small.  This
  1505.                        makes the archive file about 1K smaller on average.  
  1506.  
  1507.  
  1508.                   V 3 2    
  1509.                   V 3.2  
  1510.  
  1511.  
  1512.                               b                                                   
  1513.                        Added -b option in hopes of being  more  compatible  with
  1514.                        recalcitrant   software  (like  PC-NET)  that  chokes  on
  1515.                        forward slashes in paths.  It should be  noted  that  DOS
  1516.                        2.XX  versions  don't  like  forward  slashes in the PATH
  1517.                        environment string.  
  1518.  
  1519.  
  1520.                        Stopped closing standard handles  3  and  4  on  startup.
  1521.                        This  should  make  weird  things  like  Wordstar printer
  1522.                        output being redirected to the screen go away.  
  1523.  
  1524.  
  1525.                        Single or double quotes around redirected file names  are
  1526.                        now permitted.  
  1527.  
  1528.  
  1529.                   LICENCING STATEMENT    
  1530.                   LICENCING STATEMENT  
  1531.  
  1532.  
  1533.                        PC-SHELL is  not in the public domain.  I, Kent Williams,
  1534.                        retain  all  rights  of   ownership   over   source   and
  1535.                        executables,  unless I explicitly transfer such rights to
  1536.                        someone else.  
  1537.  
  1538.  
  1539.                        All persons who come into possesion of  PC-SHELL  in  the
  1540.                        binary-only  version  are entitled to use it however they
  1541.                        wish.  No warranty is given or implied.  All persons  who
  1542.                        come  into  possesion  of  PC-SHELL  are also entitled to
  1543.                        redistribute  the  package  in  any  way  they  see   fit
  1544.                        providing that 
  1545.  
  1546.  
  1547.  
  1548.                                              -16-
  1549.  
  1550.  
  1551.  
  1552.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  1553.  
  1554.  
  1555.  
  1556.                             1) The  package  is  distributed intact.  This means
  1557.                             that  the  archive  file  or  distribution  diskette
  1558.                             contains  PC-SHELL.COM, SMALL.COM and SHELL.DOC, and
  1559.                             that no changes have  been  made  to  any  of  these
  1560.                             files.  
  1561.  
  1562.  
  1563.                             2)  That no charge is made, beyond a nominal fee for
  1564.                             media duplication.  
  1565.  
  1566.  
  1567.                        The  above  three  paragraphs   constitute   an   limited
  1568.                        non-commercial licence to PC-SHELL binaries to anyone who 
  1569.                        obtains it.    This  distiguishes  it  from  being public
  1570.                        domain only in that I retain enough control  over  it  to
  1571.                        protect my own interests.  (Take heart, hackers!) 
  1572.  
  1573.  
  1574.                        All  person  who obtain copies of source code are granted
  1575.                        unlimited noncommercial use thereof.   This  source  code
  1576.                        licence  is not transferrable to any other party, for any
  1577.                        reason.  
  1578.  
  1579.  
  1580.                        In addition, no modified versions of the program PC-SHELL 
  1581.                        may  be  distributed  by  commercial  or   non-commercial
  1582.                        means.  
  1583.  
  1584.  
  1585.                        Any  company  wishing  to  purchase  source  licenses are
  1586.                        subject to these further restrictions.  
  1587.  
  1588.  
  1589.                             1) That no part of the source code is used,  in  any
  1590.                             form in any program sold commercially.  
  1591.  
  1592.  
  1593.                             2)  That  a  licence  fee will be paid for each user
  1594.                             within a company of PC-SHELL, according to the  rate
  1595.                        schedule below.  
  1596.  
  1597.  
  1598.                   PRICING    
  1599.                   PRICING  
  1600.  
  1601.  
  1602.                        Noncommercial Personal Use - 25.00$
  1603.                        Commercial User    - 25.00$, plus 15.00$ per each additional user.
  1604.                        Commercial Distribution - by written agreement only
  1605.  
  1606.  
  1607.                             For the above prices you will receive: 
  1608.  
  1609.  
  1610.                             1) Complete source code for shell, with makefile 
  1611.                             2) Source and executable for the text formatter used 
  1612.                             to prepare this documentation.  NOTE: I didn't write 
  1613.                             this  program,  and  am distributing it as a service
  1614.                             only.  
  1615.  
  1616.  
  1617.                             3) Executable and documentation for NDMAKE, the best 
  1618.                             make available for love or money on PC-DOS. This  is
  1619.                             distributed as  a  service  only.   Please honor the
  1620.                             author's request for donations.  
  1621.  
  1622.  
  1623.                             4) Source for as many other Unix Utilities  as  will
  1624.                             fit on  the disk.  Currently I am distributing grep,
  1625.                             calls, fgrep, cut, paste, tail, ctags.   I  did  not
  1626.                             write  these programs, and am distributing them as a
  1627.                             service only.  
  1628.  
  1629.  
  1630.  
  1631.                                              -17-
  1632.  
  1633.  
  1634.  
  1635.                PC-SHELL (1)             PC-DOS C Shell              PC-SHELL (1)
  1636.  
  1637.  
  1638.  
  1639.                             As always, miscellaneous contributions are  welcome.
  1640.                             As  anyone  who  has  contacted  me is aware, I will
  1641.                             provide as much help  as  I  can,  in  fixing  bugs,
  1642.                             providing   updates,   taking   suggestions,   etc.,
  1643.                             regardless of monetary arrangements.  
  1644.  
  1645.  
  1646.                             QUESTIONS COMMENTS BUGREPORTS GOTO 
  1647.                             KENT WILLIAMS
  1648.                             722 Rundell St.
  1649.                             Iowa City, IA 52240
  1650.                             (319) 338-6053 (HOME VOICE)
  1651.                             
  1652.                             * UNIX is an unregistered trademark of AT&T.
  1653.  
  1654.  
  1655.  
  1656.  
  1657.  
  1658.  
  1659.  
  1660.  
  1661.  
  1662.  
  1663.  
  1664.  
  1665.  
  1666.  
  1667.  
  1668.  
  1669.  
  1670.  
  1671.  
  1672.  
  1673.  
  1674.  
  1675.  
  1676.  
  1677.  
  1678.  
  1679.  
  1680.  
  1681.  
  1682.  
  1683.  
  1684.  
  1685.  
  1686.  
  1687.  
  1688.  
  1689.  
  1690.  
  1691.  
  1692.  
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.                                              -18-
  1702.  
  1703.  
  1704.